﻿using BusinessLogicLayer;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace PresentationLayer
{
    public partial class CapNhatTTDocGiaForm : Form
    {
        public CapNhatDG PhuongThucCapNhatDG { get; set; }
        public DocGia dg;
        public string MaDG { get; set; }
        public CapNhatTTDocGiaForm()
        {
            InitializeComponent();
        }
        private void btnThem_Click(object sender, EventArgs e)
        {
            ActionResultAsList<DocGia> ars = new DocGiaManager().LayDSDG();
            int i;
            if (ars.Success)
                foreach (var item in ars.ObjectList)
                {
                    if (item.MaDocGia == txtMaDocGia.Text)
                        MessageBox.Show("Mã độc giả đã tồn tại", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            if (txtMaDocGia.Text == "")
                MessageBox.Show("Mã độc giả chưa được nhập", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
            else
            {
                if (txtMaDocGia.Text.Length != 7)
                    MessageBox.Show("Vui lòng nhập 7 chữ số!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                else
                {
                    if (!int.TryParse(txtMaDocGia.Text, out i))
                        MessageBox.Show("Vui lòng nhập số!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    else
                    {
                        if (txtHoTen.Text == "")
                            MessageBox.Show("Họ tên độc giả chưa được nhập", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);

                        else
                        {
                            if ((DateTime.Now.Year) - (dtpNgaySinh.Value.Year) < 18)
                                MessageBox.Show("Tuổi độc giả nhỏ hơn 18 tuổi", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            else
                            {
                                string maDG = txtMaDocGia.Text;
                                string hoten = txtHoTen.Text;
                                string gioitinh;
                                if (radNam.Checked == true)
                                {
                                    gioitinh = "Nam";
                                }
                                else
                                    gioitinh = "Nữ";
                                DateTime ngaysinh = dtpNgaySinh.Value;
                                string trangthai = txtTrangThai.Text;
                                if (MessageBox.Show(String.Format("Bạn muốn thêm độc giả có mã độc giả: {0}?", maDG), "Xác nhận", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                                {
                                    DocGia dg = new DocGia(maDG, hoten, gioitinh, ngaysinh, null, trangthai);
                                    ActionResult rs = new DocGiaManager().Them(ref dg);
                                    if (rs.Success)
                                    {
                                        if (PhuongThucCapNhatDG != null)
                                            PhuongThucCapNhatDG(LoaiHanhDong.Them, dg);
                                        MessageBox.Show("Thêm thành công!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                    }
                                    else
                                        MessageBox.Show("Thêm thất bại!\n\nChi tiết: " + rs.Exceptions[rs.Exceptions.Count - 1].Message, "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                }
                            }
                        }
                    }
                }
            }
        }
            

        private void btnSua_Click(object sender, EventArgs e)
        {
            if (txtHoTen.Text == "")
                MessageBox.Show("Họ tên độc giả chưa được nhập", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);

            else
            {
                if ((DateTime.Now.Year) - (dtpNgaySinh.Value.Year) < 18)
                    MessageBox.Show("Tuổi độc giả nhỏ hơn 18 tuổi", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                else
                {
                    string maDG = txtMaDocGia.Text;
                    string hoten = txtHoTen.Text;
                    string gioitinh;
                    if (radNam.Checked == true)
                    {
                        gioitinh = "Nam";
                    }
                    else
                        gioitinh = "Nữ";
                    DateTime ngaysinh = dtpNgaySinh.Value;
                    DateTime ngaylapthe = dtpNgayLapThe.Value;
                    string trangthai = txtTrangThai.Text;
                    if (MessageBox.Show(String.Format("Bạn muốn cập nhật thông tin độc giả có mã độc giả {0}?", maDG), "Xác nhận", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        DocGia dg = new DocGia(maDG, hoten, gioitinh, ngaysinh, ngaylapthe, trangthai);
                        ActionResult rs = new DocGiaManager().Sua(dg);
                        if (rs.Success)
                        {
                            if (PhuongThucCapNhatDG != null)
                                PhuongThucCapNhatDG(LoaiHanhDong.CapNhat, dg);
                            MessageBox.Show("Cập nhật thành công!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                        else
                            MessageBox.Show("Cập nhật thất bại!\n\nChi tiết: " + rs.Exceptions[rs.Exceptions.Count - 1].Message, "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
        }

        private void btnRefresh_Click(object sender, EventArgs e)
        {
            txtHoTen.Text = "";
            txtMaDocGia.Text="";
            radNam.Checked = true;
            dtpNgaySinh.Value=DateTime.Now;
            txtTrangThai.Text = "";
        }

        private void CapNhatTTDocGiaForm_Load(object sender, EventArgs e)
        {
            if (MaDG != "")
            {
                txtMaDocGia.ReadOnly = true;
                btnThem.Visible = false;
                txtTrangThai.ReadOnly = true;
                var rs = new DocGiaManager().TimKiemTheoMa(MaDG);
                dg = rs.ObjectList[0];
                txtMaDocGia.Text = dg.MaDocGia;
                txtHoTen.Text = dg.HoTen;
                if (dg.GioiTinh == "Nữ")
                    radNu.Checked = true;
                dtpNgaySinh.Value = dg.NgaySinh;
                dtpNgayLapThe.Enabled = false;
                if (dg.NgayLapThe != null)
                {
                    dtpNgayLapThe.Value = Convert.ToDateTime(dg.NgayLapThe);
                    txtNgayLapThe.Visible = false;
                }
                else
                    dtpNgayLapThe.Visible = false;
                txtTrangThai.Text = dg.TrangThai;
            }
            else
            {
                btnSua.Visible = false;
                txtTrangThai.ReadOnly = true;
                txtNgayLapThe.ReadOnly = true;
            }
        }
    }
}
